As a general matter, it is known to establish a real-time media conference over a packet-switched network between two or more user stations, each operated by a respective user. A communication server, such as a multipoint conference unit (MCU) for instance, can reside functionally in the network and can operate as a bridging or switching device between the participating stations, to support the conference.
In practice, a participating station might initiate the conference by sending to the communication server a session setup message that identifies the other desired participant(s). In response, the server may then seek to connect each of the designated other participants, such as by forwarding the session setup message or sending a new session setup message to each other party. Ultimately, the server would thereby establish a conference leg with each participating station, including the initiating station, and the server would then bridge together the legs so that the users at the stations can communicate with each other in substantially real-time via the server.
A signaling mechanism such as the well known Session Initiation Protocol (SIP) could be used to initialize the conference and more particularly to set up each conference leg. Further, digitized media (voice, video, etc.) could be packetized and carried between each participating station according to a mechanism such as the well known Real-time Transport Protocol (RTP), for instance. The core industry standards for SIP (Internet Engineering Task Force (IETF) Request For Comments (RFC) 3261) and RTP (IETF RFC 1889) are hereby incorporated by reference.
Packet based media conferencing can be advantageously employed to provide an “instant chat” service, where a user of one station can readily initiate a conference with one or more designated target users at other stations. The initiating user may simply select a target user or group (if not selected by default) and then press an instant connect button on his or her station, and the user's station would responsively signal to a communication server to initiate a conference between the initiating user and the selected user or group. This sort of service is referred to as “instant chat” because it strives to provide a quick connection between two or more users, in contrast to telephone service where a user dials a telephone number of a party and waits for a circuit connection to be established with that party.
An example of an instant chat service is commonly known as “push-to-talk” (PTT). In a PTT system, some or all of the conference stations are likely to be wireless devices such as cellular mobile stations, that are equipped to establish wireless packet-data connectivity and to engage in voice-over-packet (VoP) communication. Alternatively, some or all of the stations could be other sorts of devices, such as multimedia personal computers or Ethernet-telephones, that can establish packet data connectivity and engage in VoP communication through landline connections. Further, each station could be equipped with a PTT button or other mechanism that a user can engage (actuate) in order to initiate an PTT session. Other examples of instant chat service include push-to-view (video conferencing) and the like.
Participation of cellular wireless devices in instant chat sessions, however, raises certain issues, principally due to the arrangement and operation of most cellular communication systems. In a typical cellular communication system, a geographic area is divided into a plurality of wireless coverage areas (e.g., cells and cell sectors), each defined by a radiation pattern from a respective base transceiver station (BTS) tower, and each having a limited extent of radio resources (e.g., frequency, traffic channels, power, etc.) that must be shared among potentially numerous wireless devices operating in the coverage area. To manage the limited extent of radio resources, most cellular communication systems allocate their radio resources dynamically to wireless devices on an as-needed basis. Unfortunately, however, the process of allocating radio resources can itself take up to several seconds to complete, which can introduce unacceptable latency into the process of setting up an “instant” chat session with a wireless device.
This latency problem can arise both at the originating end of an instant chat session (the end that initiates the session) and at each terminating end of the instant chat session (each target end that gets invited to participate in the session).
One established way to mitigate the latency session setup latency is to buffer media at the initiating end. In particular, certain devices that are equipped to support instant chat communication may be programmed to begin receiving and buffering media (e.g., voice) as soon as the user presses and holds an instant-chat button, and to continue doing so until the user releases the instant-chat button. Once an RTP leg is fully established between the device and the communication server, the device may then begin transmitting the buffered media (while also possibly continuing to receive additional media from the user). The end result is that each terminating end would receive the initial stream of media with some artificially introduced delay. However, given that the initiating user is likely to be positioned remotely from each terminating user, this delay would usually not be noticeable.
While buffering of media works well to mitigate latency, however, it does not help to actually reduce or eliminate the latency. Therefore, an improvement is desired.